<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>d3.js</title>
    <!-- <script src="d3.v7.min.js"></script> -->
    <script src="jquery-3.6.4.js"></script>
    <script src="d3.v5.js"></script>
    <style>
        .chartd3{
            background: #eee;
        }
        .heavy{
            font: bold 30px sans-serf;
        }
        .bar-char{
            background: #58d8f2;
        }
        .scale-bar-chart{
            background: #70fcb6;
        }

    </style>
</head>
<body>

    <div class="canva">
        
    </div>

    <h1>Bar Chart using D3.js</h1>
    <svg class="bar-char"></svg>
    

    <h1>Scale bar-char using D3.js</h1>
    <svg class="scale-bar-chart"></svg>
   
</body>
<script>
  
 var dataset = [1,2,3,4,5]
 d3.select('body')
  .selectAll('p')
  .data(dataset)
  .enter()
  .append('p')
  .text((d,i)=>{
    return d;
  })


  //class2 simple bar char
  var dataSet2 = [80,100,56,120,180,30,40,120,140]
  var svgWidth = 500,svgHeight=300,barPadding=5 ;

  var barWidth = (svgWidth/dataSet2.length);

  var svg = d3.select('svg')
  .attr('width',svgWidth )
  .attr('height',svgHeight )

  var barChart = svg.selectAll("rect")
  .data(dataSet2)
  .enter()
  .append("rect")
  .attr('y',function(d){
    return svgHeight - d ;
  } )
  .attr('height',function(d){
    return d;
  } )
  .attr('width', barWidth - barPadding)
//   .attr('transform',function(d,i){
//     var translate = [barWidth*i,0];
//     return "translate("+ translate+")"
//   } )
.attr('x', function(d,i){
    return barWidth*i;
} )
  .attr('fill',"grey" )


  //class 3 .Create Labels.
  var text = svg.selectAll("text")
  .data(dataSet2)
  .enter()
  .append("text")
  .text(function(d,i){
    return d;
  })
  .attr('y',function(d,i){
    return svgHeight -d -2;
  } )
  .attr('x',function(d,i){
    return barWidth*i;
  } )
  .attr('stroke',"blue" )

  // Scales
  var svgScale= d3.select(".scale-bar-chart")
    .attr("width",svgWidth)
    .attr('height',svgHeight )
  var yScale = d3.scaleLinear()
  .domain([0,d3.max(dataSet2)])
  .range([0,svgHeight])
  var barChartScale = svgScale.selectAll("rect")
  .data(dataSet2)
  .enter()
  .append("rect")
  .attr('y',function(d){
    return svgHeight - yScale(d) ;
  } )
  .attr('height',function(d){
    return yScale(d);
  } )
  .attr('width', barWidth - barPadding)
//   .attr('transform',function(d,i){
//     var translate = [barWidth*i,0];
//     return "translate("+ translate+")"
//   } )
.attr('x', function(d,i){
    return barWidth*i;
} )
  .attr('fill',"grey" )





</script>

</html>